/**
* @file temperture.c
* @brief this is a brief description
* @details this is the detail description.
* @author fulong 
* @data 2015/1/7
* @version 1.0
* @par Copyright (c):
* @par First build
*     version: fulong 
*     data: 2015/1/7
*/
#include "temperture.h"
#include "../dev/MAX6675.h"
#include "../dev/LM35DZ.h"
#ifdef TEMP_SAMPLE_ENABLE
#define SAMPLE_LEN 0

#ifdef TEMP_MAX6675_FILTER
extern const uint16 K_table[K_TABLE_LEN];
extern const uint16 K_table_index[K_TABLE_INDEX_LEN];
#endif
void temp_init(void)
{
#ifdef TEMP_MAX6675_FILTER
    max6675_init();
#endif
    lm35dz_init();
}
uint16 HAL_get_temperture_value(void)
{
    uint16 temp = 0;
#ifdef TEMP_MAX6675_FILTER
    uint16 temp_sample = get_max6675_data();
    if (((temp_sample & THIRD_STATUS_MASK) == THIRD_STATUS_CHECK_OK) && ((temp_sample & DEV_ID_MASK) == DEV_ID_CHECK_OK) && ((temp_sample & THERMOCOUPLE_CHECK_MASK) == THERMOCOUPLE_CHECK_OK))
    {
        temp = temp_sample >> 3;
        temp = temp * 10 / 4;
//      temp = (temp * 10) + temp / 4;
//      temp_counter_index = temp / 400;
//      if (temp_counter_index < (K_TABLE_INDEX_LEN - 1))
//      {
//          temp_counter = K_table_index[temp_counter_index + 1] - K_table_index[temp_counter_index];
//      } else
//      {
//          temp_counter = K_TABLE_LEN - K_table_index[temp_counter_index];
//      }
//      for (; temp_counter > 0; temp_counter--)
//      {
//          if (K_table[K_table_index[temp_counter_index] + i] <= temp)
//          {
//              i++;
//              continue;
//          } else
//          {
//              temp = K_table_index[temp_counter_index] + i - 1;
//              break;
//          }
//      }
    } else
    {
        temp = 0;
    }
#endif
    return (temp - 10);
//  return (get_lm35dz_data());
}
#endif

